<?php
public abstract class database {

  //Variable interne de la classe
  var $errorNum  = 0;
  var $errorMsg  = null;
  var $resource  = null;
  var $cursor    = null;
  var $number    = 0;

  //constructeur de la classe.
  protected function database($host='cyril.hizembert.sql.free.fr',$user = 'cyril.hizembert',$pass = 'sekmet00',$db = 'cyril.hizembert')
   {
    if(strtolower($db) == 'mysql') {
      $db = '';
    }
    
    if(!($this->resource = mysql_connect($host, $user, $pass))) {
      //en cas d'échec du serveur
      $this->errorNum = mysql_errno();
      $this->errorMsg = mysql_error();
    }
    if (!mysql_select_db($db)) {
      //en cas d'échec de la bd
      $this->errorNum = mysql_errno();
      $this->errorMsg = mysql_error();
    }
  }

  //retoune le ID de l'erreur
  public function getErrorNum() {
    return $this->errorNum;
  }
  //retoune le message de l'erreur
  public function getErrorMsg() {
    return $this->errorMsg;
  }
  //s'assure que les champs entrés dans la base
  //de données sont valide en ajoutant au
  //besoins des ' - semblable à la fonction "addslashes"
  public function getEscaped($text) {
    return mysql_escape_string($text);
  }

  //envoi une requete à la BD et retounr les résultats sous forme de tableau.
  protected function query($sql = '') {
    if(empty($sql)) {
      return false;
    }
    $this->errorNum = 0;
    $this->errorMsg = '';
    $array = array();
    //assigne le résultat de la requête
    $this->cursor = mysql_query(database::getEscaped($sql), $this->resource);
    if (!$this->cursor) {
      $this->errorNum = mysql_errno($this->resource);
      $this->errorMsg = mysql_error($this->resource);
      return false;
    }
    
    $this->number = mysql_num_rows($this->cursor);
    //affecteur le tableau avec les valeurs de retours.
    while($row = mysql_fetch_assoc($this->cursor)) {
      $array[] = $row;
    }
    mysql_free_result($this->cursor);
    return $array;
  }
  //ferme la connection 
  public function close() {
    return mysql_close($this->resource);
  }
  //retourne le nombre de ligne(s)
  public function getNumRows() {
    return $this->number;
  }
  //retourne le dernier ID de la dernière requête "insert" ajouté
  public function getLastId()
  {
    return mysql_insert_id();
  }
  //retourne la version de mysql
  public function getVersion()
  {
    return mysql_get_server_info();
  }

}

?>

